<?
/* 
include ("config-pwd.php");
 
conectar();

include ("source/inc-functions.php");

 */




// ************** PROCESO ECONÓMICO ***********************

if ((date("d")==date("10")) or (date("d")==date("25"))) { //ejecución del proceso económico los días 10 y 25 de cada mes

	$soc="SELECT * FROM sociedades";
	$csoc=mysql_query($soc); 

	while ($rsoc=mysql_fetch_array($csoc)) {//Ejecutar el impuesto de apalancamiento a cada sociedad dependiendo de su tipo
	
	//Inicialización a cero de entradas y salidas por cada sociedad
	$entradas=0;
	$salidas=0;
	
	$ap="SELECT * FROM impuestos WHERE tipoimpuesto='{$rsoc['tipo']}'";
	$cap=mysql_query($ap);
	$rap=mysql_fetch_array($cap);

// Suma de entradas y salidas según los dias fijados de apalancamiento

			// calculo límite temporal
			
			$limite=$rap['dias']*86400; //Segundos de un día * número de días
			
			$hoyap=date('j F Y');
			$hoysegap=mktime($hoyap);
			
			$limitmov=$hoysegap-$limite;
			
		//Salidas

		$mov="SELECT * FROM cuentasociedad WHERE sociedad='{$rsoc['sociedad']}'";
		$cmov=mysql_query($mov);			
			
		while ($rmov=mysql_fetch_array($cmov)) {
			
			if ($rmov['fecha']>=$limitmov) { // Sumar entradas inferiores a la fecha límite
				
				$salidas=$salidas+$rmov['importe'];
				if ($rsoc['sociedad']=='probando') {print $salidas;}
			} 
		}
		
		//Entradas

		$mov2="SELECT * FROM cuentasociedad WHERE contrapartida='{$rsoc['sociedad']}'";
		$cmov2=mysql_query($mov2);			
			
		while ($rmov2=mysql_fetch_array($cmov2)) {
		
		
			if ($rmov2['fecha']>=$limitmov) { // Sumar entradas inferiores a la fecha límite
				
				$entradas=$entradas+$rmov2['importe'];
				if ($rsoc['sociedad']=='probando') {print $entradas;}

			} 
		}
		
		
	$diferencia=$entradas-$salidas;
	if ($rsoc['sociedad']=='probando') {print $diferencia;}
	
	if ($diferencia>0) { //Se cobra el impuesto de apalancamiento solo si la diferencia es positiva
		
		$impuesto=$diferencia*($rap['porcoimp']/100);
		
		$queda=$rsoc['saldo']-$impuesto;
		
		//actualizar saldo, apuntar movimiento en cuentasociedad e ingresar impuesto en cuenta del gobierno
		
			// relectura previa de saldo por si se tratase de una financiera e incluyera beneficios de otra sociedad
		$lsaldo="SELECT * FROM sociedades WHERE sociedad='{$rsoc['sociedad']}'";
		$clsaldo=mysql_query($lsaldo);
		$rlsaldo=mysql_fetch_array($clsaldo);
		
		$sqda=$rlsaldo['saldo']-$impuesto;
		
		$sd="UPDATE sociedades SET saldo='$sqda' WHERE sociedad='{$rsoc['sociedad']}'";
		$csd=mysql_query($sd);
		
				$inscs="INSERT INTO cuentasociedad (sociedad, importe, contrapartida, concepto, fecha) VALUES ('{$rsoc['sociedad']}', '$impuesto', 'Gobierno', 'Impuesto Apalancamiento', '$hoysegap')";
				$cinscs=mysql_query($inscs);
		
		//Sumar a fondos de gobierno
		
		$fong="SELECT * FROM muvi_cuentas WHERE ID='1'";
		$cfong=mysql_query($fong);
		$rfong=mysql_fetch_array($cfong);
		
		$sdg=$rfong['pols']+$impuesto;
		
		$acfong="UPDATE cuentas SET pols='$sdg' WHERE ID='1'";	
		
		// Reflejar el impuesto de apalancamiento en transacciones
		
		$fechau2=date("Y-m-d H:i:s");
		$con='Impuesto de Apalancamiento de '.$rsoc['sociedad'].'.';
		
		$transap="INSERT INTO muvi_transacciones (pols, emisor_ID, receptor_ID, concepto, time) VALUES ('$impuesto', '{$rsoc['idsoc']}', '-1', '$con', '$fechau2')";	
		
		$ctransap=mysql_query($transap);		
		

	} else {$impuesto=0; } //Fin diferencia positiva

//************************************** REPARTO BENEFICIOS *************

	//Reparto de dividendos de las sociedades mercantiles
	$beneficio=0;
	
	if ($rsoc['tipo']=='mercantil') {

	$beneficio=$rsoc['saldo']-$impuesto;
	
	if ($beneficio>0) {
	
	$ac="SELECT * FROM acciones WHERE sociedad='{$rsoc['sociedad']}'";
	$cac=mysql_query($ac);
	
	while ($rac=mysql_fetch_array($cac)) {//Reparto de dividendos a cada accionista
	

	
		//Calculo del dividendo para cada accionista
		$dividendo=$beneficio*($rac['acciones']/100);
		$div=round($dividendo);

			$concep='Beneficio de '.$rsoc['sociedad'];
			$hoy2=date('j F Y');
			$hoyseg2=mktime($hoy2);
				$fechau=date("Y-m-d H:i:s");

			
			
		//Comporbar si el accionista es una financiera
		
		$tac="SELECT * FROM sociedades WHERE sociedad='{$rac['accionista']}'";
		$ctac=mysql_query($tac);
		$rtac=mysql_fetch_array($ctac);
		if (mysql_num_rows($ctac)>0) { //Si el accionista es una financiera apunto el movimiento en cuenta sociedad
		
			//Sumar oro al saldo de la sociedad
			$sdo=$rtac['saldo']+$div;		
			$divsoc="UPDATE sociedades SET saldo='$sdo' WHERE sociedad='{$rtac['sociedad']}'";
			
			$cdivsoc=mysql_query($divsoc);
			
			//Apuntar moviemiento en cuenta sociedad

			$inssoc="INSERT INTO cuentasociedad (sociedad, importe, contrapartida, concepto, fecha) VALUES ('{$rsoc['sociedad']}', '$div', '{$rtac['sociedad']}', '$concep', '$hoyseg2')";
			
			$cinssoc=mysql_query($inssoc);
			
			
			
		} else {//accionista particular
		
			$us="SELECT * FROM users where nick='{$rac['accionista']}'";
			$cus=mysql_query($us);
			$rus=mysql_fetch_array($cus);
			
			//Sumar oro al saldo del usuario
			$fdo=$rus['pols']+$div;
			$acus="UPDATE users SET pols='$fdo' WHERE nick='{$rus['nick']}'";
			$cacus=mysql_query($acus);
			
			//Apuntar el movimiento en transacciones
			$transdiv="INSERT INTO muvi_transacciones (pols, emisor_ID, receptor_ID, concepto, time) VALUES ('$div', '{$rsoc['idsoc']}', '{$rus['ID']}', '$concep', '$fechau')";
			
			$ctransdiv=mysql_query($transdiv);
			
			//Apuntar el movimiento en cuenta sociedad
			
			$inssoc2="INSERT INTO cuentasociedad (sociedad, importe, contrapartida, concepto, fecha) VALUES ('{$rsoc['sociedad']}', '$div', '{$rus['nick']}', '$concep', '$hoyseg2')";
			
			$cinssoc2=mysql_query($inssoc2);			
			
			
		}
		
	
	} // Fin while reparto dividendos a accionistas de mercantiles

			
			//Resta de dinero repartido
			
			$qda=$queda-$beneficio;
			$qda2="UPDATE sociedades SET saldo='$qda' WHERE sociedad='{$rsoc['sociedad']}'";
			$cqda2=mysql_query($qda2);
			
	} // Fin if beneficio mayor de cero
	
	} // Fin de if tipo mercantil
	
	
	//Apuntar en registro de reparto
	
	$fc=date("Y-m-d H:i:s");
	if ($rsoc['tipo']=='ong') {$beneficio=0;}
	
	$a="INSERT INTO repartosocial (fecha, empresa, impuesto, accionistas, clientes) VALUES ('$fc', '{$rsoc['sociedad']}', '$impuesto', '$beneficio', '0')";
	$ca=mysql_query($a);


} // Fin de while de la sociedad sometida a cálculo



// ******* Repartir el dividendo de financieras entre accionistas y clientes *********************

	$soc2="SELECT * FROM sociedades WHERE tipo='financiera'";
	$csoc2=mysql_query($soc2); 

	while ($rsoc2=mysql_fetch_array($csoc2)) { //Reparto de fondos de las financieras después de que estas hayan recibido los dividendos de aquellas mercantiles de las que eran accionistas.
		
		$gest="SELECT * FROM gestionbanco WHERE banco='{$rsoc2['sociedad']}'";
		$cgest=mysql_query($gest);
		$rgest=mysql_fetch_array($cgest);
		
		$beneficio=$rsoc2['saldo'];
		
			//Inicialización de variables de reparto banco
			$repartido2=0;
			$repartido3=0;

	  if ($beneficio>0) {
		
		$repcl=$beneficio*($rgest['reparto']/100);
		
		$divcl=round($repcl); //Beneficios para clientes
		
		$divbco=$beneficio-$divcl; //Beneficios para accionistas
		
		// reparto a accionistas del banco

		$ac2="SELECT * FROM acciones WHERE sociedad='{$rsoc2['sociedad']}'";
		$cac2=mysql_query($ac2);
	
	while ($rac2=mysql_fetch_array($cac2)) {//Reparto de dividendos a cada accionista
	

	
		//Calculo del dividendo para cada accionista
		$dividendo=$divbco*($rac2['acciones']/100);
		$div2=round($dividendo);
			$concep='Beneficio de '.$rsoc2['sociedad'];
			$hoy3=date('j F Y');
			$hoyseg3=mktime($hoy);
				$fechau=date("Y-m-d H:i:s");
				
			//Acumulo el dinero que se va repartiendo
			$repartido2=$repartido2+$div2;

			
			
		//Comporbar si el accionista es una financiera
		
		$tac2="SELECT * FROM sociedades WHERE sociedad='{$rac2['accionista']}'";
		$ctac2=mysql_query($tac2);
		$rtac2=mysql_fetch_array($ctac2);
		if (mysql_num_rows($ctac2)>0) { //Si el accionista es una financiera apunto el movimiento en cuenta sociedad
		
			//Sumar oro al saldo de la sociedad
			$sdo2=$rtac2['saldo']+$div2;		
			$divsoc2="UPDATE sociedades SET saldo='$sdo2' WHERE sociedad='{$rtac2['sociedad']}'";
			

			$cdivsoc2=mysql_query($divsoc2);
			
			//Apuntar moviemiento en cuenta sociedad

			$inssoc22="INSERT INTO cuentasociedad (sociedad, importe, contrapartida, concepto, fecha) VALUES ('{$rsoc2['sociedad']}', '$div', '{$rtac2['sociedad']}', '$concep', '$hoyseg3')";
			
			$cinssoc22=mysql_query($inssoc22);
			
			
			
		} else { //accionista particular
		
			$us2="SELECT * FROM users where nick='{$rac2['accionista']}'";
			$cus2=mysql_query($us2);
			$rus2=mysql_fetch_array($cus2);
			
			//Sumar oro al saldo del usuario
			$fdo=$rus2['pols']+$div2;
			$acus2="UPDATE users SET pols='$fdo' WHERE nick='{$rus2['nick']}'";
			$cacus2=mysql_query($acus2);
			
			//Apuntar el movimiento en transacciones
			$transdiv2="INSERT INTO muvi_transacciones (pols, emisor_ID, receptor_ID, concepto, time) VALUES ('$div2', '{$rsoc2['idsoc']}', '{$rus2['ID']}', '$concep', '$fechau')";
			
			$ctransdiv2=mysql_query($transdiv2);
			
			//Apuntar el movimiento en cuenta sociedad
			
			$inssoc3="INSERT INTO cuentasociedad (sociedad, importe, contrapartida, concepto, fecha) VALUES ('{$rsoc2['sociedad']}', '$div2', '{$rus2['nick']}', '$concep', '$hoyseg3')";
			
			$cinssoc3=mysql_query($inssoc3);			
			
			
		}
		
	
	} // Fin while reparto dividendos a accionistas del banco
	
	
	
	//******Reparto de dividendos a clientes 

	//Paso 1 Sumatorio del dinero de clientes de un banco
	$cl="SELECT * FROM deposito WHERE banco='{$rsoc2['sociedad']}'";
	$ccl=mysql_query($cl);
	
	//Inicialización de la suma de depositos cliente por banco
	$suma=0;
	
		while ($rcl=mysql_fetch_array($ccl)) { //Sumatorio
		
			$suma=$suma+$rcl['importe'];
		
		} // Fin sumatorio
	
	
	//Paso 2 Reparto entre clientes
	
			$concep4='Intereses de '.$rsoc2['sociedad'];
			$hoy4=date('j F Y');
			$hoyseg4=mktime($hoy);
			$fechau4=date("Y-m-d H:i:s");
					
	$cl2="SELECT * FROM deposito WHERE banco='{$rsoc2['sociedad']}'";
	$ccl2=mysql_query($cl2);
	
		while ($rcl2=mysql_fetch_array($ccl2)) { //Reparto
		
			$beneficiocliente=($divcl/$suma)*$rcl2['importe'];
			$bcl=round($beneficiocliente);
			
			//Acumulo el dinero repartido entre clientes del banco
			$repartido3=$repartido3+$bcl;
			
			//Lectura Usuarios
			$us3="SELECT * FROM users where nick='{$rcl2['depositante']}'";
			$cus3=mysql_query($us3);
			$rus3=mysql_fetch_array($cus3);


			//Sumar oro al saldo del usuario
			$fdo3=$rus3['pols']+$bcl;
			$acus3="UPDATE users SET pols='$fdo3' WHERE nick='{$rus3['nick']}'";
			$cacus3=mysql_query($acus3);
			
			//Apuntar el movimiento en transacciones
			$transdiv3="INSERT INTO muvi_transacciones (pols, emisor_ID, receptor_ID, concepto, time) VALUES ('$bcl', '{$rsoc2['idsoc']}', '{$rus3['ID']}', '$concep4', '$fechau4')";
			
			$ctransdiv3=mysql_query($transdiv3);
			
			//Apuntar el movimiento en cuenta sociedad
			
			$inssoc4="INSERT INTO cuentasociedad (sociedad, importe, contrapartida, concepto, fecha) VALUES ('{$rsoc2['sociedad']}', '$bcl', '{$rus3['nick']}', '$concep4', '$hoyseg4')";
			
			$cinssoc4=mysql_query($inssoc4);			

				
		
		} // Fin de Reparto Clientes


	} // Fin beneficio financiera mayor de cero

			$qda3=$rsoc2['saldo']-$repartido2-$repartido3;
			$qda3="UPDATE sociedades SET saldo='$qda3' WHERE sociedad='{$rsoc2['sociedad']}'";
			$cqda3=mysql_query($qda3);

	$upf="UPDATE repartosocial SET accionistas='$beneficio', clientes='$divcl' WHERE empresa='{$rsoc2['sociedad']}'";
	$cupf=mysql_query($upf);

	} //Fin the while de reparto de sociedades financieras
	

	//*********************** COMISION MANTENIMIENTO DEPOSITOS *************************
	//Supone la cantida de inicio del banco para su gestión en el próximo ciclo económico, con cargo a los fondos personales del usuario para mantenimiento de su depósito.
	
	$sb="SELECT * FROM sociedades	WHERE tipo='financiera'";
	$csb=mysql_query($sb);
	
	while ($rsb=mysql_fetch_array($csb)) {
	
		$gb="SELECT * FROM gestionbanco WHERE banco='{$rsb['sociedad']}'";
		$cgb=mysql_query($gb);
		$rgb=mysql_fetch_array($cgb);
	
		//Inicialización a cero del acumulador de mantenimiento
		$amant=0;
	
		//Aplicación de la comisión de mantenimiento a cada depósito
	
		$dp="SELECT * FROM deposito WHERE banco='{$rsb['sociedad']}'";
		$cdp=mysql_query($dp);
		
		while ($rdp=mysql_fetch_array($cdp)) {
		
			$concep5='Mantenimiento depósito '.$rsb['sociedad'];
			$hoy5=date('j F Y');
			$hoyseg5=mktime($hoy);
			$fechau5=date("Y-m-d H:i:s");


		$mant=round($rdp['importe']*($rgb['mantenimiento']/100));
		
		//Acumulación de c. mantenimiento por banco
		$amant=$amant+$mant;
		
			//Lectura Usuarios
			$us4="SELECT * FROM users where nick='{$rdp['depositante']}'";
			$cus4=mysql_query($us4);
			$rus4=mysql_fetch_array($cus4);


			//Sumar oro al saldo del usuario
			$fdo4=$rus4['pols']-$mant;
			$acus4="UPDATE users SET pols='$fdo4' WHERE nick='{$rus4['nick']}'";
			$cacus4=mysql_query($acus4);
			
			//Apuntar el movimiento en transacciones
			$transdiv4="INSERT INTO muvi_transacciones (pols, emisor_ID, receptor_ID, concepto, time) VALUES ('$mant', '{$rus4['ID']}','{$rsb['idsoc']}', '$mant', '$concep5', '$fechau5')";
			
			$ctransdiv4=mysql_query($transdiv4);
			
			//Apuntar el movimiento en cuenta sociedad
			
			$inssoc5="INSERT INTO cuentasociedad (sociedad, importe, contrapartida, concepto, fecha) VALUES ('{$rus4['nick']}', '$mant', '{$rsb['sociedad']}', '$concep5', '$hoyseg5')";
			
			$cinssoc5=mysql_query($inssoc5);		
			
			
		} //Fin depósito cliente	

		$nuevosaldo=$rsb['saldo']+$amant;
		
		$ps="SELECT * FROM repartosocial WHERE empresa='{$rsoc2['sociedad']}' ORDER BY id DESC LIMIT 1";
		$cps=mysql_query($ps);
		$rps=mysql_fetch_array($cps);
		
		$upsb="UPDATE sociedades SET saldo='$nuevosaldo' WHERE id='{$rps['id']}'";
		$cupsb=mysql_query($upsb);
			
	
	} // Fin while comisión de mantenimiento
		
	
	evento_chat('<b>[SOCIEDADES] Reparto de beneficios, intereses y cobro de impuestos realizado.</b>');
	

} // Fin de if de días 10 y 25 del proceso económico





?>


